package com.openatc.extend.common.aop.model;

import com.openatc.extend.common.aop.log.Collector;
import com.openatc.extend.common.aop.log.DataExtractor;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author ：panleilei
 * @description 需要记录日志的方法，加上此注解
 * @modified By：
 * @version:
 * @date ：Created in 2023/3/23 15:47
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface SysLog {

    /**
     * 指定专门的收集器
     * @return Specify a specialized collector
     */
    Class<? extends Collector> collector();

    Class<? extends DataExtractor> extractor();

}
